package test.inner.outer;

//  静态内部类
public class Outer1 {
	private static int i = 1;
	private int j = 10;

	public static void outer_f1() {
	}

	public void outer_f2() {
	}

	// 静态内部类用public,protected,private修饰
	// 静态内部类定义静态或者非静态成员
	static class Inner {
		static int inner_i = 100;
		int inner_j = 200;

		static void inner_f1() {
			System.out.println("Outer.i" + i);
			// 静态内部类只能访问外部类静态成员outer_f1();
			// 包括静态变量和静态方法
		}

		void inner_f2() {
			// System.out.println("Outer.i"+j);
			// 静态内部类能访问外部类非静态成员
			 //outer_f2();
			// 包括非静态变量和非静态方法

		}
	}

	public void outer_f3() {
		// 外部类访问内部类静态成员：内部类.静态成员
		System.out.println(Inner.inner_i);
		Inner.inner_f1();
		// 外部类访问内部类非静态成员:实例化内部类即
		Inner inner = new Inner();
		inner.inner_f2();
	}

	public static void main(String[] args) {
		new Outer1().outer_f3();
	}

}
